package org.soderiakelvy.model.dao.imp;

import java.io.Serializable;
import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.SessionFactory;
import org.hibernate.classic.Session;
import org.hibernate.criterion.Restrictions;
import org.soderiakelvy.model.dao.ComercializacionMesVencidoDao;
import org.soderiakelvy.model.domain.ComercializacionMesVencidoVO;
import org.soderiakelvy.model.domain.SucursalVO;
import org.soderiakelvy.model.util.HibernateUtil;

public class ComercializacionMesVencidoDaoImp implements ComercializacionMesVencidoDao, Serializable{
	private static final long serialVersionUID = 1L;

	@Override
	public void insertComercializacionMesVencidoVO(
			ComercializacionMesVencidoVO comercializacionMesVencido)
			throws Exception {
		SessionFactory sessionFactory  = HibernateUtil.getSessionFactory();
		Session session = sessionFactory.openSession();
		session.beginTransaction();
		session.save(comercializacionMesVencido);
		session.getTransaction().commit();
		session.close();
	}

	@Override
	public void updateComercializacionMesVencidoVO(
			ComercializacionMesVencidoVO comercializacionMesVencido)
			throws Exception {
		SessionFactory sessionFactory  = HibernateUtil.getSessionFactory();
		Session session = sessionFactory.openSession();
		session.beginTransaction();
		session.update(comercializacionMesVencido);
		session.getTransaction().commit();
		session.close();
		
	}

	@Override
	public void deleteComercializacionMesVencidoVO(
			ComercializacionMesVencidoVO comercializacionMesVencido)
			throws Exception {
		SessionFactory sessionFactory  = HibernateUtil.getSessionFactory();
		Session session = sessionFactory.openSession();
		session.beginTransaction();
		session.delete(comercializacionMesVencido);
		session.getTransaction().commit();
		session.close();
		
	}

	@Override
	public List<ComercializacionMesVencidoVO> getProductosComercializadosAMesVencido(
			SucursalVO sucursal) throws Exception {
		SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
		Session session = sessionFactory.openSession();
		Criteria criteria = session.createCriteria(ComercializacionMesVencidoVO.class);
		criteria.add(Restrictions.eq("sucursal", sucursal));
		List<ComercializacionMesVencidoVO> result = criteria.list();
		session.close();
		return result;
	}
	
}
